const defaults = {
	timeout:0
}
class Axios {
	constructor(instanceConfig={}) {
		this.defaults = instanceConfig
	}
	// configOrUrl:地址或配置对象
	// config:配置对象
	request(configOrUrl={},config={}){
		// 第二个参数是配置对象
		if(typeof configOrUrl === "string"){
			config.url = configOrUrl;
		}else config = configOrUrl;

		// 合并配置对象
		config = {
			...this.defaults,
			...config
		}
		// 设置请求方式
		config.method = (config.method || "get").toLowerCase();
		console.log(config);
	}
}
function createInstance(defaultConfig){
	const context = new Axios(defaultConfig);
	const instance = Axios.prototype.request.bind(context);
	// 复制context属性至instance当中
	for(let key in context){
		instance[key] = context[key];
	}
	return instance;
}
const axios = createInstance(defaults);
export default axios;